package com.hellobike.haxing.modules.purchase.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hellobike.haxing.common.vo.Result;
import com.hellobike.haxing.modules.address.entity.TKV;
import com.hellobike.haxing.modules.pms.purchaseSend.entity.TPurchaseSend;
import com.hellobike.haxing.modules.purchase.dto.TPurchaseOrderHeadDto;
import com.hellobike.haxing.modules.purchase.dto.TPurchaseProDto;
import com.hellobike.haxing.modules.purchase.entity.TPurchaseOrder;
import com.hellobike.haxing.modules.purchase.entity.TPurchaseOrderDetail;
import com.hellobike.haxing.modules.purchase.entity.TPurchasePro;
import com.hellobike.haxing.modules.supplier.entity.TSupplierClPro;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Description: 商品列表
 * @Author: haxing-boot
 * @Date:   2020-01-20
 * @Version: V1.0
 */
public interface ITPurchaseProService extends IService<TPurchasePro> {

    public void getAllPro();
    public Result<?> syncProFromOrder(TPurchaseProDto tPurchaseProDto);
    public void test();
    public List<TKV> getWareHouse(Long supplierId);
    public void editSupplier(TPurchasePro tPurchasePro);
    public void genPo(TPurchaseOrder tPurchaseOrder);
    public void genNewPo(TPurchaseOrderHeadDto tPurchaseOrderHeadDto,Integer userId);
    public void syncProFromClp(TSupplierClPro clPro);
    public List<TPurchasePro> getBySupplierId(Long headerId);
    public void updatePurchaseProFromClp(Long skuId, BigDecimal supplierPrice, Integer supplyVolume);
    public void genAsn(List<TPurchaseOrderDetail> tPurchaseProList, TPurchaseOrder tPurchaseOrder, TPurchaseSend tPurchaseSend, Integer userId);
    public void syncProAndClp(TPurchaseProDto tPurchaseProDto);
    public void editSupplierByRecord(TPurchasePro tPurchasePro);
}
